﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace ArgusLight.Threading.SynchronizedObjects
{
	public struct Count
	{
		private int count;
		private object _lock;

		public Count(int StartValue)
		{
			this.count = StartValue;
			this._lock = new object();
		}

		public void Increment()
		{
			lock (this._lock)
			{
				this.count++;
			}
		}

		public void Decrement()
		{
			lock (this._lock)
			{
				this.count--;
			}
		}

		public int Value
		{
			get { return this.count; }
		}
	}
}
